From: Florian Müllner Date: Wed, 22 Jul 2020 10:32:49 +0000 (+0200) Subject: backgroundManager: Always emit 'loaded' signal X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~92 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=5c550daecb18fff1ef98a48374ceec71f270ce89;p=gnome-shell.git backgroundManager: Always emit 'loaded' signal As backgrounds are cached, it is possible that we never emit the 'loaded' signal added in commit f386103bc1. We are relying on the signal though, so do the same as Background and emit the signal from an idle if the background was already loaded. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1371 --- diff --git a/js/ui/background.js b/js/ui/background.js index 2811da3fb..6ee1b31a6 100644 --- a/js/ui/background.js +++ b/js/ui/background.js @@ -765,11 +765,19 @@ var BackgroundManager = class BackgroundManager { this._updateBackgroundActor(); }); - let loadedSignalId = background.connect('loaded', () => { - background.disconnect(loadedSignalId); - loadedSignalId = null; - this.emit('loaded'); - }); + let loadedSignalId; + if (background.isLoaded) { + GLib.idle_add(GLib.PRIORITY_DEFAULT, () => { + this.emit('loaded'); + return GLib.SOURCE_REMOVE; + }); + } else { + loadedSignalId = background.connect('loaded', () => { + background.disconnect(loadedSignalId); + loadedSignalId = null; + this.emit('loaded'); + }); + } backgroundActor.connect('destroy', () => { if (changeSignalId)